---
title: Setup
description: How to install Ultracite in your project.
---

Ultracite can be installed with all major package managers. You'll need Node.js v14.18+ (Node 18+ recommended) and a project with a `package.json` file.

## Installation

The easiest way to get started is to run Ultracite's `init` script, which will install the necessary packages and set up the config file for you. In your project directory, run:

```package-install
npx ultracite init
```

You can optionally pass the following flags to the `init` command:

| Flag                | Description                                      | Options                                                                 |
|---------------------|--------------------------------------------------|-------------------------------------------------------------------------|
| `--pm`              | The package manager to use.                      | `pnpm`, `bun`, `yarn`, `npm`                                            |
| `--frameworks`      | The frameworks to configure.                     | Comma-separated: `react`, `next`, `solid`, `vue`, `qwik`, `angular`, `remix`, `svelte` |
| `--editors`         | The editors to configure.                        | Comma-separated: `vscode`, `zed`                                        |
| `--agents`          | The AI agents to configure.                      | Comma-separated: `vscode-copilot`, `cursor`, `windsurf`, `zed`, `claude`, `codex`, `kiro`, `cline`, `amp`, `aider`, `firebase-studio`, `open-hands`, `gemini-cli`, `junie`, `augmentcode`, `kilo-code`, `goose`, `roo-code`, `warp`, `droid` |
| `--hooks`           | The agent hooks to configure.                    | Comma-separated: `cursor`, `claude`                                     |
| `--integrations`    | Additional integrations to setup.                | Comma-separated: `husky`, `lefthook`, `lint-staged`                     |
| `--migrate`         | Migration tools to remove.                       | Comma-separated: `eslint`, `prettier` (removes dependencies, config files, and editor settings) |
| `--skip-install`    | Skip installing dependencies.                    | (no value needed)                                                       |
| `--quiet`           | Suppress interactive prompts and visual output.  | (no value needed, automatically enabled in CI)                          |

### Programmatic Usage

For tools that need to call Ultracite programmatically (like scaffolding CLIs), you can use the `--quiet` flag to suppress all interactive prompts and visual output:

```bash title="Terminal"
npx ultracite init --quiet --pm npm
```

The `--quiet` flag is automatically enabled when the `CI` environment variable is set to `true` or `1`, making it suitable for CI/CD pipelines:

```bash title="Terminal"
CI=true npx ultracite init --pm npm
```

In quiet mode, Ultracite will:
- Skip all interactive prompts
- Use sensible defaults for all options
- Suppress ASCII art, spinners, and log messages
- Only create the core Biome configuration
- Exit cleanly with code 0 on success or 1 on failure

## Extensions

If you’re using Visual Studio Code, install the official [Biome](https://marketplace.visualstudio.com/items?itemName=biomejs.biome) extension, which allows on-save formatting/fixing:

```bash title="Terminal"
code --install-extension biomejs.biome
```

Additionally, if you use Tailwind CSS, it’s recommended to install the [Tailwind CSS IntelliSense](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss) extension for class sorting and hints:

```bash title="Terminal"
code --install-extension bradlc.vscode-tailwindcss
```

